package org.jeecg.modules.common.entity;

import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 设备表
 * @Author: jeecg-boot
 * @Date:   2023-01-09
 * @Version: V1.0
 */
@Data
@TableName("camellia_device")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="camellia_device对象", description="设备表")
public class CamelliaDevice implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
	/**设备名称*/
	@Excel(name = "设备名称", width = 15)
    @ApiModelProperty(value = "设备名称")
    private java.lang.String deviceName;
	/**所属工厂*/
	@Excel(name = "所属工厂", width = 15, dictTable = "camellia_factory", dicText = "factory_name", dicCode = "factory_code")
	@Dict(dictTable = "camellia_factory", dicText = "factory_name", dicCode = "factory_code")
    @ApiModelProperty(value = "所属工厂")
    private java.lang.String factoryCode;
	/**所属子系统*/
	@Excel(name = "所属子系统", width = 15, dictTable = "camellia_env_sys", dicText = "sys_name", dicCode = "sys_code")
	@Dict(dictTable = "camellia_env_sys", dicText = "sys_name", dicCode = "sys_code")
    @ApiModelProperty(value = "所属子系统")
    private java.lang.String camelliaSysCode;
	/**设备是否启用*/
	@Excel(name = "设备是否启用", width = 15, dicCode = "camellia_dict_device_enabled_status")
	@Dict(dicCode = "camellia_dict_device_enabled_status")
    @ApiModelProperty(value = "设备是否启用")
    private java.lang.Integer deviceEnabled;
	/**车间code*/
	@Excel(name = "车间code", width = 15)
    @ApiModelProperty(value = "车间code")
    private java.lang.String workshopCode;
	/** 产线code*/
	@Excel(name = " 产线code", width = 15)
    @ApiModelProperty(value = " 产线code")
    private java.lang.String productionLineCode;
	/** 设备类型*/
	@Excel(name = " 设备类型", width = 15, dictTable = "camellia_device_type", dicText = "type_name", dicCode = "type_code")
	@Dict(dictTable = "camellia_device_type", dicText = "type_name", dicCode = "type_code")
    @ApiModelProperty(value = " 设备类型")
    private java.lang.String deviceType;
	/**设备编码*/
	@Excel(name = "设备编码", width = 15)
    @ApiModelProperty(value = "设备编码")
    private java.lang.String deviceCode;
	/**设备安装日期*/
	@Excel(name = "设备安装日期", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "设备安装日期")
    private java.util.Date deviceSetupDate;
	/**安装位置*/
	@Excel(name = "安装位置", width = 15)
    @ApiModelProperty(value = "安装位置")
    private java.lang.String deviceLocation;
	/**设备是否在线*/
	@Excel(name = "设备是否在线", width = 15, dicCode = "camellia_dict_device_online_status")
	@Dict(dicCode = "camellia_dict_device_online_status")
    @ApiModelProperty(value = "设备是否在线")
    private java.lang.Integer deviceOnlineStatus;
	/**设备PID/ClientId*/
	@Excel(name = "设备PID/ClientId", width = 15)
    @ApiModelProperty(value = "设备PID/ClientId")
    private java.lang.String devicePid;
	/**备注*/
	@Excel(name = "备注", width = 15)
    @ApiModelProperty(value = "备注")
    private java.lang.String remark;
	/**报警阈值*/
	@Excel(name = "报警阈值", width = 15)
    @ApiModelProperty(value = "报警阈值")
    private java.lang.Double alarmThresholdValue;
	/**数据订阅周期*/
	@Excel(name = "数据订阅周期", width = 15)
    @ApiModelProperty(value = "数据订阅周期")
    private java.lang.Integer subscriptionPeriod;
	/**设置地址*/
	@Excel(name = "设置地址", width = 15)
    @ApiModelProperty(value = "设置地址")
    private java.lang.String deviceSettingUrl;
	/**最近数据*/
	@Excel(name = "最近数据", width = 15)
    @ApiModelProperty(value = "最近数据")
    private java.lang.String currentData;
	/**维保周期*/
	@Excel(name = "维保周期", width = 15)
    @ApiModelProperty(value = "维保周期")
    private java.lang.String maintaincePeriod;
	/**是否正在维保*/
	@Excel(name = "是否正在维保", width = 15)
    @ApiModelProperty(value = "是否正在维保")
    private java.lang.String underMaintenance;
	/**上次维保时间*/
	@Excel(name = "上次维保时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "上次维保时间")
    private java.util.Date lastMaintenanceTime;
	/**下次维保时间*/
	@Excel(name = "下次维保时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "下次维保时间")
    private java.util.Date nextMaintenanceTime;
	/**是否删除*/
	@Excel(name = "是否删除", width = 15)
    @ApiModelProperty(value = "是否删除")
    private java.lang.Integer isDeleted;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private java.util.Date createTime;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private java.util.Date updateTime;
}
